Storage apparatus and data processing method for storage apparatus

ABSTRACT

The accuracy of predicting the remaining life of a non-volatile memory in which WA occurs is enhanced. A storage controller predicts the remaining lives of SSDs on the basis of the data storage rates of the respective SSDs. When the storage controller determines that a life expectation result on one SSD does not satisfy a target operation period while a life expectation result on another SSD satisfies the target operation period, the storage controller executes extent migration processing of migrating data in any data stored extent to an extent in which data has not been stored, thereby decreasing the data storage rate of the one SSD to extend the life of the one SSD.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The present invention relates to a storage apparatus and a dataprocessing method for the storage apparatus.

2. Description of the Related Art

In recent years, as a memory device that is mounted on a storageapparatus, in addition to or in place of a hard disk drive (HDD), anon-volatile memory device (for example, solid state drive: SSD)including non-volatile memories (for example, flash memories: FMs) hasbeen used.

An SSD generally has mounted thereon NAND FMs, typically, a plurality ofFM chips and a memory controller configured to control the FM chips. Thememory controller manages detailed control inside the SSD, for example,adjustment of used capacities of the FMs. Since FM chips can be erased alimited number of times due to their configuration, the FM chips haveupper limit values (that is, life limits) of the total amount ofwritable data (the total amount of data to be written). Thus, SSDshaving FM chips mounted thereon also have life limits.

JP-T-2015-505078 discloses an “SSD life prediction method” in which astorage controller configured to control an entire storage apparatusobtains, on the basis of life information acquired from each SSD, a lifeconsumption rate that is a slope of a life consumption amount in acertain period and uses a linear approximation to the slope, thereby topredict a remaining period until the life of the corresponding SSD ends,and a “life extension method” that adjusts a write load between the SSDs(the amount of data to be written to the SSDs), thereby to extend theSSD lives.

SUMMARY OF THE INVENTION

Since FM chips are write-once, read-many devices, the FM chips cannotsupport data overwriting in principle. Accordingly, storing new data inan FM chip requires reclamation processing of erasing one or more blocksto generate available blocks again. The reclamation processing is notperformed by a storage controller configured to control an entirestorage apparatus, but is performed by a memory controller mounted oneach SSD. When blocks are erased in the reclamation processing, it isnecessary to migrate valid data in the blocks to be erased to otherblocks. Thus, inside an SSD, there occurs a phenomenon called writeamplification (hereinafter sometimes referred to as “WA”) where theamount of data to be actually written in an FM is larger than the amountof data written from a higher-level apparatus. The remaining life of anSSD depends on the amount of writing, and hence, when WA occurs, theremaining life consumption rate increases.

When performing the reclamation processing, an SSD is to migrate validdata in blocks to be erased to other blocks. Thus, the SSD requires oneor more spare blocks. The total capacity of all spare blocks is referredto as “spare capacity.” Since an SSD requires a spare capacity in thisway, a capacity that a user can use for data storage (referred to as“user capacity”) is a capacity obtained by subtracting the sparecapacity from the physical capacity of the SSD (the total capacity ofall the blocks of the SSD). Note that, the ratio of a spare capacity toa user capacity in an SSD is referred to as “over-provisioning ratio (OPratio).”

The OP ratio of an SSD affects the SSD life. For example, in an SSDhaving a large OP ratio, since a spare capacity is large, data migrationis performed a small number of times in the reclamation processing, sothat the amount of life consumption due to the data migration is small(WA is small). Meanwhile, in an SSD having a small OP ratio, since aspare capacity is small, data migration is performed a large number oftimes in the reclamation processing, so that the amount of lifeconsumption due to the data migration is large (WA is large). In thisway, the magnitude of WA depends on an over-provisioning ratio (OPratio).

Here, the user capacity of an SSD can be divided into a “data storedarea” in which user data has already been stored and a “data non-storedarea” in which user data has not been stored yet. The SSD can use, whenperforming the reclamation processing, also the capacity of the datanon-stored area as part of a spare capacity. Thus, a substantial OPratio is the ratio of the sum of data non-stored user capacity and sparecapacity to a data stored user capacity. As a result, WA changesdepending on the amount of stored user data (that is, a data storagerate).

In general, the amount of user data stored in a storage apparatus (thatis, SSD) increases over time. It is expected that, along with this,inside the SSD, WA increases due to a decrease in substantial OP ratio.Thus, with the related-art life prediction method using a linearapproximation, which does not take the effect of an increase in WA in anSSD over time into consideration, a predicted SSD remaining life islonger than an actual SSD remaining life.

The present invention has been made in view of the above-mentionedcircumstances and has an object to provide a storage apparatus and adata processing method for the storage apparatus that are capable ofenhancing the accuracy of predicting the remaining life of anon-volatile memory in which WA occurs.

In order to achieve the above-mentioned object, according to a firstaspect, there is provided a storage apparatus including a plurality ofdrives each including a plurality of non-volatile memories, and acontroller configured to process data that is stored in the drives. Thenon-volatile memories each have a life based on an amount of datawriting. The controller performs the processing based on a remaininglife of each of the non-volatile memories and predicts the life of eachof the non-volatile memories based on an amount of data writing to thecorresponding drive and a data storage rate of the corresponding drive.

According to the present invention, it is possible to enhance theaccuracy of predicting the remaining life of a non-volatile memory inwhich WA occurs.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a relation between SSD data storagerate and SSD remaining life rate of a storage apparatus according to afirst embodiment;

FIG. 2 is a diagram illustrating an SSD remaining life rate extensionmethod with SSD data storage rate adjustment in the storage apparatusaccording to the first embodiment;

FIG. 3 is a block diagram illustrating an SSD life extension method inthe storage apparatus according to the first embodiment;

FIG. 4 is a block diagram illustrating a hardware configuration exampleof the storage apparatus according to the first embodiment;

FIG. 5 is a diagram illustrating an exemplary virtual volume managementtable that is used in the storage apparatus of FIG. 4;

FIG. 6 is a diagram illustrating an exemplary extent management tablethat is used in the storage apparatus of FIG. 4;

FIG. 7 is a diagram illustrating an exemplary PG management table thatis used in the storage apparatus of FIG. 4;

FIG. 8 is a diagram illustrating an exemplary Drive management tablethat is used in the storage apparatus of FIG. 4;

FIG. 9 is a diagram illustrating an exemplary expected WA valuemanagement table that is used in the storage apparatus of FIG. 4;

FIG. 10 is a diagram illustrating an exemplary Drive statisticalinformation management table that is used in the storage apparatus ofFIG. 4;

FIG. 11 is a diagram illustrating an exemplary SSD remaining lifeprediction table that is used in the storage apparatus of FIG. 4;

FIG. 12 is a flowchart illustrating exemplary operation of the storageapparatus of FIG. 4;

FIG. 13 is a flowchart illustrating an exemplary write process of thestorage apparatus of FIG. 4;

FIG. 14 is a flowchart illustrating an exemplary statistical informationupdate process of the storage apparatus of FIG. 4;

FIG. 15 is a flowchart illustrating an exemplary Drive life predictionprocess of the storage apparatus of FIG. 4;

FIG. 16 is a flowchart illustrating an exemplary Drive life extensionprocess of the storage apparatus of FIG. 4.

FIG. 17 is a block diagram illustrating an SSD life extension method ina storage apparatus according to a second embodiment; and

FIG. 18 is a diagram illustrating an SSD remaining life rate extensionmethod with SSD data storage rate limitation in a storage apparatusaccording to a third embodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments are described with reference to the drawings. Note that, thefollowing embodiments are not intended to limit the invention accordingto the scope of claims, and not all components and combinations thereofdescribed in the embodiments are essential to solving means of theinvention.

FIG. 1 is a diagram illustrating a relation between SSD data storagerate and SSD remaining life rate of a storage apparatus according to afirst embodiment. In FIG. 1, the horizontal axis indicates the time. Thevertical axis of the upper figure indicates the SSD data storage rate,and the vertical axis of the lower figure indicates the SSD remaininglife rate.

In FIG. 1, the data storage rate is the ratio of stored data to logicalblock addressing (LBA) space provided by each SSD. For example, a statein which an SSD having a user capacity of 100 GB (an LBA space of 100GB) has stored therein data taking 60 GB of the LBA space is defined asa data storage rate of 60%. Here, an expression “data storagerate=(stored data amount)/(user capacity)” can be given.

Meanwhile, the SSD remaining life rate indicates a general numericalvalue that is data that can be taken from the SSD with the use of astandard interface such as Self-Monitoring Analysis and ReportingTechnology (SMART). In the present embodiment, it is assumed that thenumerical value of the SSD remaining life rate decreases from 100% to0%. Note that, a state in which the remaining life rate is 0% is definedas a state in which the SSD dies (reaches an upper limit of the totalamount of writable data).

Next, a general relation between the transitions of SSD data storagerate and SSD remaining life is described. As described above, the WA ofan SSD changes depending on a substantial OP ratio, and as thesubstantial OP ratio decreases, the WA increases. Note that, thesubstantial OP ratio means the ratio of a value obtained by adding asize of a user capacity in which data has not been stored to a sparecapacity size to a size of a user capacity in which data has beenstored.

Thus, even when the SSD data storage rate increases linearly asindicated by a graph 1000, WA increases gradually. Consequently, the SSDlife consumption rate increases, with the result that the SSD remaininglife rate does not decrease linearly as indicated by a graph 1003.

Here, as understood from the graphs 1000 and 1003, the decrease rate ofthe SSD remaining life rate depends on the data storage rate. Thus, anSSD storage controller predicts, on the basis of the SSD data storagerate, the remaining life of each SSD with WA reflected therein.

Here, in the graphs 1000 and 1003, when the current time is T₂, a solidline before time T₂ means a past transition and a broken line after timeT₂ means a future transition predicted by the storage controller.

A slope Sc of the graph 1000 of the upper figure indicates an increaserate of a recent data storage rate (for example, a data increase amountper day (GB/Day)). The storage controller expects a future transition ofthe data storage rate on the basis of the slope Sc. For example, in acase where the data storage rate at time T₂ is 70% and prediction timeT₃ at which the data storage rate has increased by 10% and is 80% iscalculated, the storage controller obtains a period P_((+10%)) requiredfor the data storage rate to increase by 10% and adds the period tocurrent time T₂, thereby obtaining prediction time T₃.

Specifically, the period P_((+10%)) can be obtained by an expression“10% of SSD capacity (GB)/data storage rate increase rate Sc (GB/Day).”In a similar manner, prediction time T₄ at which the data storage rateis 90% and prediction time T₅ at which the data storage rate is 100% canbe obtained by an expression “T₃+P_((+10%))” and an expression“T₄+P_((+10%)),” respectively.

A slope S1 of the graph 1003 of the lower figure indicates a recent SSDlife consumption rate (for example, a decrease amount of a life rate perday (%/Day)). In the following description, the slope S1 indicates alife consumption rate (actual value) in a section in which the datastorage rate changes from 60% to 70%. A slope S2 indicates an expectedvalue of the life consumption rate in a section in which the datastorage rate changes from 70% to 80%. A slope S3 indicates an expectedvalue of the life consumption rate in a section in which the datastorage rate changes from 80% to 90%. A slope S4 indicates an expectedvalue of the life consumption rate in a section in which the datastorage rate changes from 90% to 100%. Note that, since a lifeconsumption rate S is proportional to the magnitude of WA as describedabove, as the data storage rate increases, the value of the lifeconsumption rate S increases, and a relation of S1<S2<S3<S4 isqualitatively established.

Next, a method that the storage controller uses to predict the slopesS2, S3, and S4 is described. The slope S1 indicates the life consumptionrate in a period in which the data storage rate changes from 60% to 70%(that is, a period of from time T₁ to time T₂). The slopes S2, S3, andS4 are obtained by correcting the slope S1 with the ratio of WA. Thestorage controller has stored therein expected WA values at therespective data storage rates in advance. The storage controllermultiplies, to the slope S1, a ratio calculated with the expected WAvalue (referred to as “WA correction value”), thereby to obtain theslope S2. For example, when the expected WA value at the data storagerate of from 60% to 70% is 2.5 and the expected WA value at the datastorage rate of from 70% to 80% is 2.8, the predicted value of the slopeS2 can be obtained by “slope S1×WA correction value (2.8/2.5).”

Thus, the predicted amount of life consumption from time T₂ to time T₃,by which it is expected that the data storage rate increases by 10%, canbe calculated by “slope S1×WA correction value (2.8/2.5)×expected periodP_((+10%)).” By repeating similar calculation until each data storagerate reaches 100%, a storage controller 10 can predict time T_((0life))at which the lives of the SSDs end.

However, T_((0life)) is not always necessarily a multiple of P_((+10%)).In FIG. 1, T_((0life)) is before T₅ (=T₄+P_((+10%)). In the case where aremaining life after P_((+10%)) falls below zero in this way, a requiredperiod from time T₄ to T_((0life)) may be obtained by “expectedremaining life rate at time T₄/slope S4.”

Here, time T_((0life)) means an expected time at which the life of anSSD ends, and time T_((target)) means a day until which the SSDs areintended to operate (for example, a date five years from operationstart). In FIG. 1, since T_((0life)) is before T_((target)), the SSDlife expectation result indicates that the target operation period isnot achieved. Note that, P_((shortage)) (Day) is a difference betweenT_((target)) and T_((0life)) and indicates an expected number of days oflife shortage.

FIG. 2 is a diagram illustrating an SSD remaining life rate extensionmethod with SSD data storage rate adjustment in the storage apparatusaccording to the first embodiment. FIG. 2 illustrates changes in datastorage rate and remaining life rate with and without data migration.Now, a way of thinking of life extension by the storage controller in acase where it is determined that the life of an SSD ends at time T₂ isdescribed.

In FIG. 2, the storage controller performs life prediction with increaseand decrease in WA due to increase and decrease in SSD data storage ratereflected therein and adjusts the data storage rate of an SSD whose lifedoes not last for the target operation period, thereby to extend thelife of the SSD.

Specifically, the storage controller obtains the number of days of lifeshortage P_((shortage)) as a result of the life prediction describedwith FIG. 1. The storage controller migrates the amount of data obtainedby dividing P_((shortage)) by the data storage rate increase rate Scfrom the SSD to another SSD (that is, decreases the data storage rate ofthe SSD having the insufficient life), thereby to extend the life of theSSD. Specifically, for example, since P_((shortage)) is smaller thanP_((+10%)), the storage controller determines to migrate 10% of the datain the SSD so that a life expectation result on the SSD satisfies thetarget operation period. Specifically, as the amount of data to bemigrated to another SSD, the storage controller determines, for example,when P_((shortage))/P_((+10%)) is 0.8, the amount of data correspondingto one P_((+10%)) that corresponds to the rounded up value, that is,data corresponding to a data storage rate of 10%.

In FIG. 2, the graph 1000 indicates a data storage rate expectationresult without data migration, and the graph 1003 indicates a remaininglife rate expectation result without data migration. Meanwhile, a graph1001 indicates a data storage rate expectation result with datamigration, and a graph 1002 indicates a remaining life rate expectationresult with data migration.

At time T₂, the storage controller migrates 10% of the data from the SSDto another SSD. Thus, as indicated by the graph 1001, the SSD datastorage rate changes from 70% to 60%. After that, with expectation thatthe data amount increases at the current data storage rate increase rateSc, the storage controller expects that the SSD data storage ratetransitions to 70% at time T₃, and to 80% at time T₄.

By virtue of the migration of 10% of the data in the SSD (a decrease indata storage rate), a substantial OP ratio is improved, and the lifedecrease rate after T₂ thus decreases. Specifically, as indicated by thegraphs 1002 and 1003, the slope from time T₂ to time T₃ changes from theslope S2 corresponding to the storage rate of from 70% to 80% in thecase without data migration to the slope S1 corresponding to the storagerate of from 60% to 70% in the case with data migration, and the lifedecrease rate is eased. In a similar manner, the slope from time T₃ totime T₄ changes from the slope S3 to the slope S2. As a result, time atwhich the life of the SSD ends is pushed back from time T_((0life)) totime T_((0life′)) and can thus exceed time T_((target)) that is thetarget operation date.

FIG. 3 is a block diagram illustrating an SSD life extension method inthe storage apparatus according to the first embodiment.

In FIG. 3, a storage apparatus 1 includes a plurality of SSDs 20 a and20 b, which are memory devices, and the storage controller 10 configuredto control the memory devices. The SSDs 20 a and 20 b each includenon-volatile memories (for example, NAND flash memories). The storageapparatus 1 is connected to a host apparatus 2.

The storage controller 10 forms a parity group 30 with the plurality ofSSDs 20 a, and forms a parity group 31 with the plurality of SSDs 20 b.The storage controller 10 manages a memory area of each of the paritygroups 30 and 31 divided into sections in a predetermined size. Thissection is referred to as “extent.” Extents 80 and 81 each include dataheld by the corresponding SSDs 20 a and 20 b.

The storage apparatus 1 provides a virtual volume 50 to the hostapparatus 2. The virtual volume 50 is formed by thin provisioning, forexample. When receiving a write request to the virtual volume 50 fromthe host apparatus 2, the storage controller 10 allocates the extent 80in the parity group 30 to a virtual extent 60 of the virtual volume 50,and writes data based on the write request to the extent 80. In thepresent embodiment, this state is referred to as a state in which thevirtual extent 60 refers to the extent 80.

The parity groups 30 and 31 have respective data stored areas 40A and41A (shaded parts) in which data has been stored, and respective datanon-stored areas 40B and 41B (blank parts) in which data has not beenstored. Here, any of the virtual extents 60 is referring to the extent80 present in the data stored area 40A. In the extent 81 present in thedata non-stored area 41B, data has not been stored.

The storage controller 10 predicts the remaining lives of the SSD 20 aand SSD 20 b on the basis of the data storage rates of the respectiveSSD 20 a and SSD 20 b. Further, it is assumed that the storagecontroller 10 has determined that a life expectation result on the SSD20 a does not satisfy the target operation period while a lifeexpectation result on the SSD 20 b satisfies the target operationperiod. Here, the storage controller 10 can select the SSD 20 a as alife extension target SSD from which data is migrated and select the SSD20 b as an SSD to which the data is migrated. Then, the storagecontroller 10 executes extent migration processing of migrating data inany data stored extent 80 to the extent 81 in which data has not beenstored. Here, the storage controller 10 switches the extent that thevirtual extent 60 refers to from the extent 80 that is a migrationsource to the extent 81 that is a migration destination. With thisextent migration processing, the storage controller 10 can decrease thedata storage rate of the SSD 20 a, thereby to extend the life of the SSD20 a.

FIG. 4 is a block diagram illustrating a hardware configuration exampleof the storage apparatus according to the first embodiment.

In FIG. 4, a computer system 100 includes the storage apparatus 1, thehost apparatus 2, and a management host apparatus 3. The storageapparatus 1 and the host apparatus 2 are communicably connected to eachother via a storage area network (SAN) 5. The storage apparatus 1 andthe management host apparatus 3 are communicably connected to each othervia a local area network (LAN) 6.

The storage apparatus 1 stores data using a Redundant Arrays ofInexpensive Disks (RAID) system. The host apparatus 2 is a higher-levelapparatus configured to request the storage apparatus 1 to write or readdata (user data). In the example of FIG. 4, the two host apparatuses 2are illustrated, but one or three or more host apparatuses 2 may beprovided, instead of two. The management host apparatus 3 is amanagement apparatus configured to manage the storage apparatus 1, andreceives various notifications from the storage apparatus 1 andtransmits various instructions to the storage apparatus 1.

The storage apparatus 1 includes the storage controller 10 and aplurality of SSDs 20. The storage controller 10 includes a hostinterface (I/F) 11, a management I/F 12, a disk I/F 13, an internalswitch 15, a memory 16, and a central processing unit (CPU) 17.

The storage controller 10 is a control unit configured to controlreading/writing of data from/to the SSDs 20. In the example of FIG. 4,the storage controller 10 is duplicated to create a replica of data tobe read or written, thereby achieving a higher reliability, but thestorage controller 10 may not be duplicated, or may be multiplexedtriply or more.

The host I/F 11 communicates with the host apparatus 2. The managementI/F 12 communicates with the management host apparatus 3. The disk I/F13 communicates with the SSDs 20. The internal switch 15 switches theconnections of the parts of the storage controller 10.

The memory 16 temporarily records data to be read/written from/to theSSDs 20. Further, the memory 16 records management information formanaging the storage apparatus 1 and a program for defining theoperation of the CPU 17. The CPU 17 is a computing machine (computer)configured to read the program recorded on the memory 16 and execute theread program, thereby to realize various functions.

The SSDs 20 are each a memory apparatus configured to store data and arealso called “flash memory drive.” The SSDs 20 form a parity group (PG)in which data is stored in a distributed manner. Although, in theexample of FIG. 4, the all-flash array (AFA) only including the SSDs asthe memory apparatuses is used, a hybrid array having a mixture of SSDsand HDDs may be used. Further, storage class memories (SCMs) may be usedinstead of SSDs or a mixture of SSDs and SCMs may be used.

FIG. 5 is a diagram illustrating an exemplary virtual volume managementtable that is used in the storage apparatus of FIG. 4. Note that, thetables illustrated in FIG. 5 to FIG. 11 are each managed by the storagecontroller 10.

In FIG. 5, a virtual volume management table 200 has entries of virtualvolume #201 specifying the virtual volume 50 of FIG. 3, virtual capacity203 indicating the virtual volume size, used capacity 204 indicating theamount of data stored in the virtual volume, virtual extent #205specifying the virtual extent 60 in the virtual volume 50, and PG #206and extent #207 specifying the extent 80 or 81 associated with thevirtual extent #205. Note that, in a case where a virtual extent isassociated with no actual extent, N/A is stored in the PG #206 and theextent #207.

FIG. 6 is a diagram illustrating an exemplary extent management tablethat is used in the storage apparatus of FIG. 4.

In FIG. 6, an extent management table 300 has entries of PG #301specifying PGs to which extents belong, Extent #302 specifying theextents 80 and 81, RAID Level 303 indicating the RAID configurations ofthe extents, Drive #304 specifying the SSDs 20 belonging to the extent80 or 81, Start-LBA 305 and Size 306 specifying the areas of the drivescorresponding to the extents, and state #307 specifying whether or notthe extents have data stored therein (are allocated to any virtualextent 60). In FIG. 6, for example, it is indicated that Extent #1includes the area of an LBA of from 0 to 256 KB of each of Drives #1 to3.

FIG. 7 is a diagram illustrating an exemplary PG management table thatis used in the storage apparatus of FIG. 4.

In FIG. 7, a PG management table 400 has entries of PG #401 specifying aPG, Drive #402 specifying drives belonging to the PG, PG capacity 403indicating the capacity of the PG, stored data amount 404 indicating theamount of data stored in the PG, and data storage rate 405 indicatingthe ratio of the amount of data stored in the PG.

FIG. 8 is a diagram illustrating an exemplary Drive management tablethat is used in the storage apparatus of FIG. 4. The storage controller10 can only grasp, with regard to a state inside each drive, a usedcapacity, an empty capacity, the address of data that can been seen fromoutside the drive (this may be different from the address of dataactually stored in the FM of the SSD 20), and the like. Thus, thestorage controller 10 manages, using the Drive management tableillustrated in FIG. 8, the remaining life and data storage rate of eachdrive.

In FIG. 8, a Drive management table 500 has entries of Drive #501specifying a memory device, Drive type 502 specifying the type of thememory device such as an SSD or HDD, use start date 503 indicating adate on which the memory device has been used for the first time, targetoperation period 504 of the memory device, Drive size 505 indicating thecapacity of the device, data storage rate 506 indicating a data storagerate, and remaining life 507 of the device. In a case where the targetoperation period of the device is five years, in the target operationperiod 504, a date five years from a date in the use start date 503 isstored. In the remaining life 507, in a case where the device type is anSSD, the numerical value of a remaining life rate acquired from the SSDis stored.

FIG. 9 is a diagram illustrating an exemplary expected WA valuemanagement table that is used in the storage apparatus of FIG. 4.

In FIG. 9, an expected WA value management table 600 has entries of SSDdata storage rate 601 and expected WA value 602. For example, in thedata storage rate 601 and the expected WA value 602, expected WA valueswhen the storage rate changes with increments of 10% are stored. Theexpected WA value 602 may have numerical values obtained fromtheoretical values or measurement values obtained by prior evaluation inadvance, for example.

FIG. 10 is a diagram illustrating an exemplary Drive statisticalinformation management table that is used in the storage apparatus ofFIG. 4.

In FIG. 10, a Drive statistical information management table 700 is usedby the storage controller 10 to record the actual usage of each drive.The Drive statistical information management table 700 has entries ofDrive #701 specifying a drive, Time Stamp 702 indicating times ofstatistical information acquisition, stored data amount 703 and datastorage rate 704 at the acquisition, data increase rate 705 indicatingthe rate of increase and decrease of a data storage rate from the lastacquisition to the current acquisition, SSD remaining life 706indicating SSD remaining lives at the times of statistical informationacquisition, and life consumption rate 707. For example, when Time Stampof the current acquisition is T₂ and Time Stamp of the last acquisitionis T₁, a data increase rate and a life decrease rate in the period offrom T₁ to T₂ are stored in the data increase rate 705 and the lifeconsumption rate 707.

FIG. 11 is an exemplary SSD remaining life prediction table that is usedin the storage apparatus of FIG. 4.

In FIG. 11, an SSD remaining life prediction table 800 is used by thestorage controller 10 to calculate an expected end-of-life time of theSSD 20. Although not illustrated, the storage controller 10 has the SSDremaining life prediction table 800 for each of the SSDs 20. The SSDremaining life prediction table 800 has entries of data storage rate801, data type 802, life consumption rate 803, estimated WA value 804,expected length of stay 805, expected life consumption amount 806, andexpected remaining life 807.

In the data storage rate 801, for example, numerical values are storedwith increments of 10%. In the type 802, one of “Actual” representingactual values and “Expect” representing expected values is stored. Thelife consumption rate 803 indicates the latest life consumption rate,and, as the value thereof, the latest value of the life consumption rate707 in the Drive statistical information management table 700 is stored.In the estimated WA value 804, expected WA values corresponding to therespective data storage rates are stored. For example, in a third line8003 of the estimated WA value 804, an expected WA value when the datastorage rate is from 40% to 50% is stored on the basis of the expectedWA value management table 600. In the expected length of stay 805, anexpected value of how long it takes for the data storage rate toincrease by 10%, for example, is input. This value is equal toP_((+10%)) that is the expected period that the data storage rate takesto increase by 10% as illustrated in FIG. 9. The expected lifeconsumption amount 806 indicates expected life consumption amounts inthe period. This calculation can use an expression “life consumptionrate 803×ratio of estimated WA value 804×estimated length of stay 805.”The expected remaining life 807 indicates predicted life rate values atthe respective data storage rates.

In the present embodiment, in the table 800, the latest actual value isstored in the first line, and the predicted values are stored in thesecond and subsequent lines. A first line 8001 of the table indicatesthat the data storage rate of a prediction target SSD in life predictionis 30%, the life consumption rate is actually 0.1% per day, and theremaining life is 90%. A second line 8002 of the table 800 indicatesthat it is expected that, when the data storage rate increases from 30%by 10% to 40%, the expected WA value increases from 1.1 to 1.2, theexpected value of how long it takes for the data storage rate to reach40% is 30 days, and a life consumed in the 30 days is 3.2%(0.1%/day×1.2/1.1×30 day), with the result that the remaining lifedecreases from 90% to 86.8%.

FIG. 12 is a flowchart illustrating exemplary operation of the storageapparatus of FIG. 4.

In FIG. 12, the storage controller 10 determines whether or not the hostI/F 11 has received a read/write request from the host apparatus 2 (StepS10). In a case where a request has been received and the request is aread request (Step S20: read), the storage controller 10 performs a readprocess of reading data from the SSD 20 in response to the read requestand transmitting the read data to the host apparatus 2 (Step S40). Afterthat, the storage controller 10 proceeds to Step S60.

Meanwhile, in a case where the request is a write request, the storagecontroller 10 executes a write process of writing data to the SSD 20 inresponse to the write request (see FIG. 13) (Step S50). After that, thestorage controller 10 proceeds to Step S60.

In a case where no request has been received in Step S10, the case wherethe processing in Step S40 ends, or the case where the processing inStep S50 ends, the storage controller 10 determines whether or not acertain period has elapsed from the last processing (Step S60).

In a case where it is determined in Step S60 that the certain period haselapsed, the storage controller 10 executes a process of updatingstatistical information on the SSD 20 (see FIG. 14) (Step 70). Afterthat, the storage controller 10 executes a process of predicting thelife of the SSD 20 (see FIG. 15) (Step 80), and an SSD life extensionprocess (see FIG. 16) (Step S90). When Step 90 ends, the storagecontroller 10 proceeds to Step S100.

In a case where it is determined in Step S60 that the certain period hasnot elapsed or in the case where the processing in Step S90 ends, thestorage controller 10 determines whether or not the management I/F 12has received a stop request for stopping the storage apparatus 1 fromthe management host apparatus 3 (Step S100). In a case where no stoprequest has been received, the storage controller 10 returns to theprocessing in Step S10. In a case where a stop request has beenreceived, the storage controller 10 ends the processing.

FIG. 13 is a flowchart illustrating an exemplary write process of thestorage apparatus of FIG. 4.

In FIG. 13, in the write process, the storage controller 10 refers toaddress information on a write request to determine whether the requestis writing to an area to which an extent has been allocated (Step S501).In a case where it is determined in Step S501 that the extent has beenallocated to the area, the storage controller 10 overwrites the data onthe allocated extent (Step S502), and ends the series of processes.

Meanwhile, in a case where it is determined in Step S501 that therequest is writing to an area to which an extent has not been allocated,the storage controller 10 secures an unallocated extent and stores thedata (Step S503). After that, the storage controller 10 updates thestate 307 in the extent management table 300 of FIG. 6, the stored dataamount 404 and data storage rate 405 in the PG management table 400 ofFIG. 7, and the data storage rate 506 in the Drive management table 500of FIG. 8 (Step S504), and ends the series of processes.

FIG. 14 is a flowchart illustrating an exemplary statistical informationupdate process of the storage apparatus of FIG. 4.

In FIG. 14, in the statistical information update process, the storagecontroller 10 selects a drive to be updated (Step S701).

Next, the storage controller 10 adds a current time to the Time Stamp702 (Step S702), adds a current stored data amount to the stored dataamount 703 (Step S703), and adds a current data storage rate to the datastorage rate 704 (Step S704) in the Drive statistical informationmanagement table 700 of FIG. 10. Next, the storage controller 10calculates a data increase rate from an elapsed time from the lasttimestamp acquisition and the amount of increase from the last storeddata amount, and adds the result to the data increase rate 705 (StepS705).

Next, the storage controller 10 issues a command for inquiring of thetarget drive about its remaining life rate, and adds a received value tothe remaining life 706 (Step S706). The storage controller 10 calculatesa life consumption rate in the period on the basis of the thus obtainedresult, and adds the life consumption rate to the life consumption rate707 (Step S707). When the processing in Step S707 ends, the storagecontroller 10 determines whether information on all the drives to beupdated has been updated (Step S708). When the result of thedetermination in Step S708 is No, the storage controller 10 returns tothe processing in Step S701 (Step S708: no). When the result of thedetermination in Step S708 is Yes, the storage controller 10 ends theseries of processes (Step S708: yes).

FIG. 15 is a flowchart illustrating an exemplary Drive life predictionprocess of the storage apparatus of FIG. 4.

In FIG. 15, in the Drive life prediction process, the storage controller10 selects a drive whose life is to be predicted (Step S801).

Next, in the SSD remaining life prediction table 800 of FIG. 11, thestorage controller 10 copies the latest value of the data storage rate704 to the first line of the data storage rate 801, and stores datastorage rates up to 100% with increments of 10% in the second andsubsequent lines of the data storage rate 801 (Step S802). Next, thestorage controller 10 inputs “Actual” to the first line and inputs“Expect” to the second and subsequent lines of the type 802 (Step S803).

Next, the storage controller 10 copies the latest value of the lifeconsumption rate 707 to the first line of the life consumption rate 803(Step S804). Next, the storage controller 10 refers to the expected WAvalue management table 600 of FIG. 9 and copies the values of theexpected WA value 602 corresponding to the respective data storage ratesto the estimated WA value 804 (Step S805). Next, the storage controller10 updates the second and subsequent lines of the expected length ofstay 805. This calculation can use an expression “Drive size 505/latestvalue of data increase rate 705×10” (Step S806).

Next, the storage controller 10 updates the second and subsequent linesof the expected life consumption amount 806. This calculation can use anexpression “life consumption rate 803× magnification of estimated WAvalue 804×expected length of stay 805” (Step S807). Next, the storagecontroller 10 updates the expected remaining life 807 (Step S808) anddetermines whether the lives of all the target drives have beenpredicted (Step S809).

In a case where not all the target drives have been predicted, thestorage controller 10 returns to the processing in Step S801 (Step S809:no). Meanwhile, in a case where all the target drives have beenpredicted, the storage controller 10 ends the series of processes (StepS809: yes).

FIG. 16 is a flowchart illustrating an exemplary Drive life extensionprocess of the storage apparatus of FIG. 4.

In FIG. 16, in the Drive life extension process, the storage controller10 determines whether there are drives that require the life extensionprocessing. Specifically, the storage controller 10 determines that adrive whose expected end-of-life date is before the target operationdate requires the life extension processing (Step S901).

In a case where it is determined as a result of the processing in StepS901 that there is a drive that requires the life extension processing(Step S901: yes), the storage controller 10 calculates, using the methoddescribed with FIG. 2, the amount of to-be-migrated data necessary forallowing the drive to operate for the target period (Step S902).

Next, the storage controller 10 determines, with respect to the resultof the calculation in S902, whether there are parity groups to whichdata is migratable. Specifically, since the SSD data storage rate of aparity group to which the data is migrated increases, it is determinedwhether a parity group to which the data is migrated has enough freespace and whether, with an increase in data storage rate due to themigration, the remaining life of the parity group does not end beforethe target operation date (Step S903).

In a case where it is determined as a result of the determination inStep S903 that there is a parity group to which the data is migratable(Step S903: yes), the storage controller 10 performs in-extent-datareplacement processing (Step S904) and executes various-tables updateprocessing for changing the correspondence of the extent associated withthe virtual extent, for example (Step S905). Then, the storagecontroller 10 returns to Step S901.

Meanwhile, in a case where it is determined as a result of thedetermination in Step S903 that there is no parity group to which thedata is migratable (Step S903: no), the storage controller 10 cancelsthe life extension processing on the drive and returns the processing toStep S901.

Meanwhile, in a case where it is determined in Step S901 that there isno drive that requires life extension (Step S901: no), the storagecontroller 10 ends the series of processes.

FIG. 17 is a block diagram illustrating an SSD life extension method ina storage apparatus according to a second embodiment.

In FIG. 17, as SSD life extension means, drive addition is used. Thedrive addition means a method that adds drives to parity groups by oneunit, as described in WO 2017/175285, for example. Note that, after thedrive addition, data stored in an existing drive is partly migrated toan added drive by the distributed RAID technology. With this, the datastorage rate of an SSD determined not to achieve the target operationperiod as a result of life expectation decreases, and the life of theSSD can therefore be extended.

Before the drive addition to the parity group 30, data in the extent 80associated with the virtual volume 60 of FIG. 3 is arranged in the fourSSDs 20 a in a distributed manner. The parity group 30 also has anextent 82 not associated with the virtual volume 60 of FIG. 3. Further,it is assumed that the storage controller 10 has determined that a lifeexpectation result on the SSDs 20 a does not satisfy the targetoperation period.

Here, the user adds one SSD 20 c to the parity group 30. When the SSD 20c is added, the storage controller 10 arranges the data in the extent80, which has been stored in the four SSDs 20 a, to the five SSDs 20 aand 20 c in a distributed manner. With this, the storage apparatus canhold the data in the extent 80 in the five SSDs 20 a and 20 c in adistributed manner, thereby to decrease the data storage rate of theexisting SSDs 20 a.

Note that, in the present embodiment, the storage controller 10 canobtain a capacity to be added. Specifically, the storage controller 10uses “necessary additional capacity=P_((shortage))/data storage rateincrease rate Sc” as in the method described with FIG. 2. Thus, in thepresent embodiment, the storage controller 10 may calculate the numberof SSDs required for achieving a necessary additional capacity andpresent the result to the user. For example, when a necessary additionalcapacity is 300 GB and the existing SSDs 20 a are each a 200-GB SSD,necessary additional SSDs may be two 200-GB SSDs or one 300-GB SSD.Alternatively, instead of the addition in units of drives, addition inunits of parity groups (addition of a parity group having the sameconfiguration as the existing parity group 30) may be employed.

FIG. 18 is a diagram illustrating an SSD remaining life rate extensionmethod with SSD data storage rate limitation in a storage apparatusaccording to a third embodiment. In the third embodiment, the storagecontroller 10 limits the amount of data stored in the SSD 20 such thatthe remaining life of the drive does not end before the target operationdate.

In FIG. 18, T_(a) indicates an expected life reached time when the SSDis used until the data storage rate reaches 100%, and T_(a) is beforetime T_((target)) that is the target operation date. Here, the storagecontroller 10 prevents additional data from being stored in the SSD 20,thereby to extend the life of the SSD 20.

Specifically, the storage controller 10 determines an upper limit valueof the data storage rate by the following method. For example, thestorage controller 10 calculates an expected life reached time T_(b)when the data storage rate is limited to 90%. In the calculation ofT_(b), there may be obtained date and time when the life rate reacheszero in a case where the SSD operates at the life consumption rate S3even after prediction time T₄ at which the data storage rate reaches90%. Further, the storage controller 10 calculates an expected lifereached time T_(c) when the data storage rate is limited to 80%. In thecalculation of T_(c), there may be obtained date and time when the liferate reaches zero in a case where the SSD operates at the lifeconsumption rate S2 even after prediction time T₃ at which the datastorage rate reaches 80%.

Here, it is assumed that, at T_(b), the remaining life ends beforeT_((target)), but the remaining life lasts over T_((target)) at T_(c).Here, the storage controller 10 determines that, when the upper limit ofthe data storage rate of the SSD 20 is 80%, the remaining life lastsover the target operation period. Further, the storage controller 10sets, on the basis of the result, the upper limit of the data storagerate of the SSD 20 to 80% and notifies the user of the change throughthe management host apparatus 3.

Note that, in the embodiments described above, the method in which thecontroller predicts an SSD remaining life on the basis of an SSD datastorage rate, but the controller may predict, on the basis of the datastorage rate of a memory area provided by a non-volatile memory, amemory area remaining life. This memory area may be in units of drivessuch as SSDs, parity groups, FM chips, or FM blocks, or other units.Further, the present invention may be applied to, other than storageapparatuses having SSDs mounted thereon, universal serial bus (USB)memories, secure digital (SD) cards, or flash storages that are used insmartphones, for example. Further, in the embodiments described above,the storage controller 10 does not directly manage the internal controlof the FMs, but the present invention is also applicable to, forexample, a system called “open channel” in which the storage controller10 directly manages the internal control of the FMs such as the FMreclamation processing.

Note that, the present invention is not limited to the above-mentionedembodiments and includes various modifications. For example, theabove-mentioned embodiments have been described in detail for easyunderstanding of the present invention; however, the present inventionis not necessarily limited to a structure that includes all thecomponents described above. Further, a component of a certain embodimentmay be replaced by a component of another embodiment, or a component ofa certain embodiment may be added to another embodiment. Further, for acomponent of each embodiment, addition, omission, or replacement ofanother component can be made. Further, the above-mentioned components,functions, processing units, processing means, and the like may be, inpart or in whole, implemented by hardware, for example, an integratedcircuit.

What is claimed is:
 1. A storage apparatus comprising: a plurality of drives each including a plurality of non-volatile memories; and a controller configured to process data that is stored in the drives, wherein the non-volatile memories each have a life based on an amount of data writing, the controller performs the processing based on a remaining life of each of the non-volatile memories, and the controller predicts the life of each of the non-volatile memories based on an amount of data writing to the corresponding drive and a data storage rate of the corresponding drive.
 2. The storage apparatus according to claim 1, wherein the non-volatile memories are each a write-once, read-many device, the drives each include a memory controller, and the memory controller performs reclamation of migrating, in the corresponding drive, data stored in the non-volatile memories.
 3. The storage apparatus according to claim 1, wherein the controller calculates a consumption rate of the life based on the amount of data writing to the corresponding drive and the data storage rate of the corresponding drive, and calculates the life based on the consumption rate of the life.
 4. The storage apparatus according to claim 3, wherein the controller has expected write amplification (WA) value management information in which the storage rate is associated with an expected WA value, selects an expected WA value based on the data storage rate of the corresponding drive, and calculates the consumption rate of the life based on the selected expected WA value and the amount of data writing.
 5. The storage apparatus according to claim 2, wherein the drives each provide a memory area to the controller, and the controller manages a capacity of the memory area of each of the drives and the data storage rate of each of the drives.
 6. The storage apparatus according to claim 1, wherein the drives each provide a memory area to the controller, and the controller manages a capacity of the memory area of each of the drives and the data storage rate of each of the drives, and predicts, based on the capacity of the memory area of each of the drives and the data storage rate of each of the drives, the life of each of the non-volatile memories of the corresponding drive.
 7. The storage apparatus according to claim 6, wherein the controller migrates the data between the drives such that a difference between the data storage rates of the drives is reduced.
 8. The storage apparatus according to claim 6, wherein the controller migrates the data between the drives based on the life of the non-volatile memory predicted as a life of the corresponding drive and a target operation period set for the drives.
 9. The storage apparatus according to claim 6, wherein the controller notifies need of addition of the drives, based on the life of the non-volatile memory predicted as a life of the corresponding drive and a target operation period set for the drives.
 10. The storage apparatus according to claim 1, wherein the plurality of drives form a parity group, the plurality of drives of the parity group form extents using respective memory areas, a plurality of pieces of data stored in one of the extents are migrated to another of the extents based on life prediction on any of the drives of the parity group, and the extent that is the migration destination is the extent without the memory area of the drive associated with life prediction that causes the migration.
 11. A data processing method for a storage apparatus, the storage apparatus including a plurality of drives each including a plurality of non-volatile memories, and a controller configured to process data that is stored in the drives, the non-volatile memories each having a life based on an amount of data writing, the data processing method comprising: performing the processing based on a remaining life of each of the non-volatile memories; and predicting the life of each of the non-volatile memories based on an amount of data writing to the corresponding drive and a data storage rate of the corresponding drive. 